/*
 * Light.hh
 *
 *  Created on: Jan 8, 2013
 *      Author: Zermingore
 */

#ifndef LIGHT_HH_
#   define LIGHT_HH_

#   include "tools/Vector.hh"
#   include "common/stl.h"

enum e_light
{
    directional
};


/** Abstract class
 ** mother of all light sources
 */
class Light
{
    protected:
        Light();
        Light(Vector color, float intensity, GLuint programID);
        virtual ~Light() = 0;

    public:
        // getters - Setters
        Vector getColor();
        Vector getDirection();
        float getIntensity();

        void setColor(Vector col);
        void setDirection(Vector dir);
        void setIntensity(float i);

        /** Lights on the light source
         */
        void on();

    protected:
        Vector _color;
        Vector _direction;
        float _intensity;
        GLuint _programID;
};

#endif /* LIGHT_HH_ */
